package finbudget.client.ui.table;

import finbudget.client.ui.table.fields.AttachmentField;
import finbudget.client.ui.table.fields.BigDecimalField;
import finbudget.client.ui.table.fields.DateField;
import finbudget.client.ui.table.fields.DateTimeField;
import finbudget.client.ui.table.fields.DescriptionField;
import finbudget.client.ui.table.fields.HtmlField;
import finbudget.client.ui.table.fields.LongField;

public interface Transformator {

	Object toRaw(Field field, Object value);
	Object toRaw(DateField field, Object value);
	Object toRaw(SuggestField field, Object value);
	Object toRaw(SuggestAddableField field, Object value);
	Object toRaw(DateTimeField field, Object value);
	Object toRaw(BigDecimalField field, Object value);
	Object toRaw(DescriptionField field, Object value);
	Object toRaw(HtmlField field, Object value);
	Object toRaw(SubmitField field, Object value);
	Object toRaw(AttachmentField field, Object value);
	Object toRaw(LongField field, Object value);
	Object toRaw(BooleanField field, Object value);

	String fromRaw(Field field, Object value);
	String fromRaw(DateField field, Object value);
	String fromRaw(SuggestField field, Object value);
	String fromRaw(SuggestAddableField field, Object value);
	String fromRaw(DateTimeField field, Object value);
	String fromRaw(BigDecimalField field, Object value);
	String fromRaw(DescriptionField field, Object value);
	String fromRaw(HtmlField field, Object value);
	String fromRaw(SubmitField field, Object value);
	String fromRaw(AttachmentField field, Object value);
	String fromRaw(LongField field, Object value);
	String fromRaw(BooleanField field, Object value);

}
